package game

import (
	"mssgserver/db"
	"mssgserver/net"
	"mssgserver/server/game/controller"
	"mssgserver/server/game/gameConfig"
	"mssgserver/server/game/gameConfig/general"
	"mssgserver/server/game/logic"
)

var Router = &net.Router{}

/*
统一说明一下含义
在每一个配置文件上会定义一个全局变量
在这里调用方法区加载初始化   但是为什么不在他自己的文件中 定义一个init函数  分开自己初始化呢????????
*/
func Init() {
	db.TestDB()
	//加载基础配置
	gameConfig.Base.Load()
	//加载地图的资源配置
	gameConfig.MapBuildConf.Load()
	//加载地图单元格配置
	gameConfig.MapRes.Load()
	//加载城池设施配置
	gameConfig.FacilityConf.Load()
	//加载武将配置信息
	general.General.Load()
	general.GeneralBasic.Load()
	//加载技能配置信息
	gameConfig.Skill.Load()
	gameConfig.MapBCConf.Load()

	general.GeneralArms.Load()

	logic.BeforeInit()

	//加载所有的建筑信息
	logic.RoleBuildService.Load()
	//加载所有的城池信息
	logic.RoleCityService.Load()
	//加载联盟的所有信息
	logic.CoalitionService.Load()
	//加载所有的角色属性
	logic.RoleAttrService.Load()
	//加载角色资源
	logic.RoleResService.Load()
	logic.ArmyService.Init()

	initRouter()
}

func initRouter() {
	controller.DefaultRoleController.Router(Router)      // 角色
	controller.DefaultNationMapController.Router(Router) // 国家地图
	controller.DefaultGeneralController.Router(Router)   // 武将
	controller.DefaultArmyController.Router(Router)      // 军队
	controller.WarController.Router(Router)              // 战争
	controller.SkillController.Router(Router)            // 技能
	controller.InteriorController.Router(Router)         // 内政
	controller.UnionController.Router(Router)            // 联盟
	controller.CityController.Router(Router)             // 城市

}
